var optionInit = function(kxData){
	// var upColor = '#e64b4b';		//红
	// var downColor = '#4eb76c';      //绿
  const upColor = '#ec0000';
  const upBorderColor = '#8A0000';
  const downColor = '#00da3c';
  const downBorderColor = '#008F28';
	const data = splitData(kxData);
  const maData = kxData['USEMA3'];
  const titInfo = kxData['hq.kxbase'][0];

	let options = {
        backgroundColor: '#fff',
        animation: false,
        title: {
            text: titInfo.name + '[' + titInfo.code + ']',
            textStyle: {
               fontSize: '18px'
            },
            left: '12%'
        },
        legend: {
          left: 'center',
          itemWidth: 0,
          data: [
            {
              name: 'MA5',
              icon:'none',
              textStyle: {
                color: '#f06eaa'
              }
            },
            {
              name: 'MA10',
              icon:'none',
              textStyle: {
                color: '#ffc100'
              }
            },
            {
              name: 'MA20',
              icon:'none',
              textStyle: {
                color: '#178cea'
              }
            }
          ]
        },
//      tooltip: {
//          trigger: 'axis',
//          showDelay: 0,
//          axisPointer: {
//              type: 'cross'
//          },
//          padding: 10,
//          position: function (pos, params, el, elRect, size) {
//              var obj = {top: 10};
//              obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 30;
//              return obj;
//          },
//          formatter: function (params) {
//          	if(params[0].value != "-") {
//          		var res = params[0].name;
//          		if(params[0].seriesType == "candlestick"){
//                      res += '<br/>  开盘 : ' + params[0].value[1].toFixed(2);
//                      res += '<br/>  最高 : ' + params[0].value[4].toFixed(2);
//                      res += '<br/>  收盘 : ' + params[0].value[2].toFixed(2);
//                      res += '<br/>  最低 : ' + params[0].value[3].toFixed(2);
//                      if(params[0].value[5] > 10000) {
//                          var lAmout = (params[0].value[5] / 1000000).toFixed(2) + "万";
//                          res += '<br/>  成交量 : ' + lAmout;
//                      } else {
//                          var lAmout = (params[0].value[5] / 100).toFixed(2);
//                          res += '<br/>  成交量 : ' + lAmout;
//                      }
//          		}else if(params[0].seriesType == "bar"){
//                      if(params[0].value[1] > 10000) {
//                          var lAmout = (params[0].value[1] / 1000000).toFixed(2) + "万";
//                          res += '<br/>  成交量 : ' + lAmout;
//                      } else {
//                          var lAmout = (params[0].value[1] / 100).toFixed(2);
//                          res += '<br/>  成交量 : ' + lAmout;
//                      }
//          		}
//              } else {
//                  var res = "";
//                  res += '<br/>  开盘 : --' ;
//                  res += '<br/>  最高 : --' ;
//                  res += '<br/>  收盘 : --' ;
//                  res += '<br/>  最低 : --' ;
//                  res += '<br/>  成交量 : --' ;
//              }
//              return res;
//          }
//      },
        axisPointer: {
            link: {xAxisIndex: 'all'},
            label: {
                backgroundColor: '#777'
            }
        },
        visualMap: {
            show: false,
            seriesIndex: 1,
            dimension: 2,
            pieces: [{
                value: 1,
                color: upColor
            }, {
                value: -1,
                color: downColor
            }]
        },
        grid: [
            {
                left: '13%',
                right: '4%',
                top: 25,
                height: '55%'
            },
            {
                left: '13%',
                right: '4%',
                top: '75%',
                height: '16%'
            }
        ],
        xAxis: [
            {
                type: 'category',
                data: data.categoryData,
                boundaryGap : false,
                axisLine: {onZero: false},
                axisTick: {show: false},
                splitLine: {
                  show: true,
                  lineStyle: {
                    type: 'dashed'
                  }
                },
                axisLabel: {
                  formatter: function (value, index) {
                    if(index == 5 || index == 10 || index == 15 || index == 20 || index == 25){
                      return value
                    }
                  }
                },
                min: 'dataMin',
                max: 'dataMax',
                axisPointer: {
                    z: 100
                }
            },
            {
                type: 'category',
                gridIndex: 1,
                data: data.categoryData,
                boundaryGap : false,
                axisLine: {onZero: false},
                axisTick: {show: false},
                splitLine: {
                  show: true,
                  lineStyle: {
                    type: 'dashed'
                  }
                },
                axisLabel: {show: false},
                min: 'dataMin',
                max: 'dataMax'
            }
        ],
        yAxis: [
            {
              scale: true,
              axisTick: {show: false},
              axisLabel:{
                formatter:function (value) {
                  return value.toFixed(2)
                }
              }
            },
            {
              scale: true,
              axisTick: {show: false},
              gridIndex: 1,
              splitNumber: 2,
              type : 'value',
              axisLine:{
                show: true,
                lineStyle: {
                    width: 0.5
                }
              },
              axisLabel: {
                formatter: function (v) {
                  if (v > 10000 && v < 100000000) {
                      return (v / 1000000).toFixed(2) + "万";
                  } else if (v >= 100000000) {
                      return (v / 10000000000).toFixed(2) + "亿";
                  } else {
                    return (v / 100).toFixed(2);
                  }
                }
              },
              splitLine: { show:true }
            }
        ],
        series: [
            {
              name: '日k',
              type: 'candlestick',
              data: data.values,
              itemStyle: {
                  normal: {
                      color: upColor,
                      color0: downColor
                  }
              },
                // tooltip: {
                //     formatter: function (param) {
                //         param = param[0];
                //         return [
                //             'Date: ' + param.name + '<hr size=1 style="margin: 3px 0">',
                //             '开盘: ' + param.data[0] + '<br/>',
                //             '收盘: ' + param.data[1] + '<br/>',
                //             '最低: ' + param.data[2] + '<br/>',
                //             '最高: ' + param.data[3] + '<br/>'
                //         ].join('');
                //     }
                // }
            },
            {
                name: 'Volume',
                type: 'bar',
                xAxisIndex: 1,
                yAxisIndex: 1,
                data: data.volumes,
                barWidth: '10px',
                itemStyle: {
                    normal: {
                        color: upColor,
                        color0: downColor
                    }
                },
            },
         {
             name: 'MA5',
             type: 'line',
             data: calculateMA('MA31', maData),
             symbol:'none',
             smooth:true,
             itemStyle: {
                 normal: {
                     lineStyle: {
                         width: 1,
                         color: '#f06eaa'
                     }
                 }
             }
         },
         {
             name: 'MA10',
             type: 'line',
             data: calculateMA('MA32', maData),
          	symbol:'none',
          	smooth:true,
          	itemStyle: {
              	normal: {
                  	lineStyle: {
                      	width: 1,
                      	color: '#ffc100'
                  	}
              	}
          	}
         },
         {
             name: 'MA20',
             type: 'line',
             data: calculateMA('MA33', maData),
      		symbol:'none',
          	smooth:true,
          	itemStyle: {
              	normal: {
                  	lineStyle: {
                      	width: 1,
                      	color: '#178cea'
                  	}
              	}
          	}
         },
       ]
	}
	return options
}

// var calculateMA = function(dayCount, data) {
//   var result = [];
//   for (var i = 0, len = data.values.length; i < len; i++) {
//     if (i < dayCount) {
//       result.push('-');
//       continue;
//     }
//     var sum = 0;
//     for (var j = 0; j < dayCount; j++) {
//       sum += data.values[i - j][1];
//     }
//     result.push(+(sum / dayCount).toFixed(3));
//   }
//  return result;
// }

var calculateMA = function(str, arr) {
  var result = [];
  arr.forEach(item => {
    result.push(item[str])
  })
  return result;
}

var splitData = function(tar) {
	let rawData = tar['hq.kx']
    var categoryData = [];
    var values = [];
    var volumes = [];
    rawData.forEach((item, index) => {
    	categoryData.push(item.hqda);
        values.push([item.jrkp, item.zjcj, item.zdcj, item.zgcj, item.cjsl]);   //zrsp改为了zjcj   demo里的zjcj位置为今日收盘
        volumes.push([index, item.cjsl, item.zjcj > item.zrsp ? 1 : -1]);       //jrkp改为了zjcj   demo里今日开盘 > 今日收盘 ? 1 : -1 控制成交量柱子颜色
    })
    return {
        categoryData: categoryData,  //["2004-01-02", "2004-01-02"]
    	values: values,   			 //[10452.74, 10409.85, 10367.41, 10554.96, 168890000]
    	volumes: volumes   			 //[0, 168890000, 1]
    }
}

export default optionInit;
